11. Inferencia en Estadística Paramétrica#
11.1. Distribuciones de estadísticos muestrales#
11.1.1. La distribución chi-cuadrado#
Sean \(Z_1,\cdots, Z_k\, v.a.i.i.d. \, \sim {\it N}(0,1)\) entonces
donde \(k\) son los grados de libertad de la distribución, y es un entero positivo.
La función de densidad de probabilidad de una chi-cuadrado cumple:
con
Además
suppressMessages(library(dplyr))
suppressMessages(library(plotly))
suppressMessages(library(ggplot2))
suppressMessages(library(rmarkdown))
vec <- seq(0,20,by=0.05)
params <- c(1:15)
pvec <- list()
for (i in 1:length(params)){
pvec[[i]] <- dchisq(vec,df=params[i],ncp=0)
}
steps <- list()
fig <- plot_ly(width=600,height=600) %>% layout(title = "\n \n Densidad de Probabilidad Chi-cuadrado",
yaxis = list(range=c(0,0.5)))
for (i in 1:length(params)){
fig <- add_lines(fig, x=vec, y=pvec[[i]],
visible=if (i==1) TRUE else FALSE,
mode='lines', line=list(color='blue'), showlegend=FALSE)
steps[[i]] = list(args = list('visible', rep(FALSE, length(params))),
label=params[i], method='restyle')
steps[[i]]$args[[2]][i] = TRUE
}
fig <- fig %>% layout(sliders = list(list(active=0, currentvalue = list(prefix = "df: "), steps=steps)))
fig
Propiedad de suma de v.a. chi-cuadrado independientes
Sean \(X\) e \( Y\) dos v.a. independientes con \(X \sim \chi^2_{(n)}\) e \(Y \sim \chi^2_{(m)}\) entonces se cumple: \( X+Y \sim \chi^2_{(n+m)}\)
11.1.2. Distribución de la media y varianza muestral del caso Normal#
Teorema de Fisher-Cochran
Sean \(X_1,\cdots,X_n\) v.a.i.i.d. \({\cal N}(\mu,\sigma^2)\) entonces la media y varianza muestral cumplen:
\(\begin{equation} \begin{array}{lcll} (i) & \bar{X} &\sim& {\cal N}(\mu, \frac{\sigma^2}{n})\\ \\ (ii) & {\displaystyle \frac{(n-1)S^2}{\sigma^2}}& \sim& \chi_{(n-1)}^2 \\ \\ (iii)& \bar{X} &{\mathrel \perp} & S^2 \quad \text{(independentes)}\\ \end{array} \end{equation}\)
11.1.3. La distribución t-student#
Sean \(Z \sim {\it N}(0,1)\) y \(X \sim \chi^2_{(n)}\) y son independientes, se define la v.a.
que sigue una distribución t-student de n grados de libertad. Cuando n es grande, \(T\) tiene aproximadamente una distribución de Z (por ley débil de los grandes números).
Su función de densidad de probabilidad es:
y la media y varianza:
\(\begin{equation} \begin{array}{lll} E[X] &= &0\\ Var(X)& =& \dfrac{n}{n-2}\\ \end{array} \end{equation}\)
La varianza esta definida para valores de \(n \gt 2\).
Corolario (del Teo Fisher-Cochran)
Sean \(X_1,\cdots,X_n\) v.a.i.i.d. \({\it N}(\mu,\sigma^2)\) entonces se cumple:
donde \(S\) es la desviación estándar muestral:
Grados de Libertad (df)
Los grados de libertad se refieren al número de valores que pueden variar libremente, dado un conjunto de restricciones matemáticas (o número de parámetros estimados), en una muestra que se utiliza para estimar las características de una población.
Por ejemplo, para estimar la varianza de una población, primero se estidma la media de la población. Por lo tanto, si estimamos la varianza de la población con n observaciones, esta estimación tiene (n-1) grados de libertad. Asi, en un t-test de una muestra, un grado de libertad se utiliza en estimar la media y los n-1 restantes en estimar la variabilidad.
set.seed(1)
vec <- seq(-5,5,by=0.05)
params <- seq(1,20,by=1)
pvec <- list()
for (i in 1:length(params)){
pvec[[i]] <- dt(vec, df=params[i])
}
pvec_Z <- dnorm(vec)
steps <- list()
fig <- plot_ly(width=600,height=600) %>%
layout(title = "\n \n Densidad de Probabilidad t-student", yaxis=list(range=c(0,0.45))) %>%
add_lines(x=vec, y=pvec_Z, visible=TRUE, mode='lines', line=list(color='blue'), showlegend=TRUE, name="Z")
for (i in 1:length(params)){
fig <- add_lines(fig, x=vec, y=pvec[[i]], visible=ifelse(i==1, TRUE, FALSE), mode='lines', line=list(color='red'), showlegend=TRUE, name="T")
steps[[i]] = list(args=list('visible', rep(FALSE, length(params)+1)), label=params[i], method='restyle')
steps[[i]]$args[[2]][1] = TRUE
steps[[i]]$args[[2]][i+1] = TRUE
}
fig <- fig %>% layout(sliders=list(list(active=0, currentvalue=list(prefix="df: "), steps=steps)), legend=list(x=0.8, y=0.8))
fig
Percentiles de t-student
Sea \(t_{\alpha,n}\) tal que \(P(T_{(n)} \geq t_{\alpha,n}) = \alpha\) el percentil \((1-\alpha)\) de \(T_{(n)}\).
y \(t_{\frac{\alpha}{2},n-1}\) tal que \(P(T_{(n-1)} \geq t_{\frac{\alpha}{2},n-1}) = \frac{\alpha}{2}\) el percentil \((1-\frac{\alpha}{2})\) de \(T_{(n-1)}\).
11.1.4. Teorema del Límite Central#
Sean \(X_1,\cdots,X_n\) v.a.i.i.d. según una distribución con media \(\mu\) y varianza \(\sigma^2\), entonces las media muestral \(\overline{X}_n\) cumple:
se dice que
Es decir que la media muestral se aproxima a una distribución Normal de media \(\mu\) y varianza \(\frac{\sigma^2}{n}\) cuando \(n\) es grande. \(X_i\) podría tiene cualquier distribución de probabilidad, continua o discreta.
Ilustración
Simulando 100 muestras de distintos tamaños de una distribución definida, y elaborando histogramas de las medias muestrales se obtiene lo siguiente:
#caso binomial (5 ensayos, p=0.4)
library(moments)
set.seed(1)
params <- c(1:5, seq(10, 100, by=10), seq(200, 300, by=100)) #tamaños de mustras
nmuestra <- 10000
nensayos <- 5
p <- 0.4
muestra <- matrix(0, nrow=nmuestra, ncol=length(params))
for (i in 1:length(params)){
n <- params[i]
m <- matrix(rbinom(n * nmuestra, nensayos, p), nrow=nmuestra, ncol=n, byrow=TRUE)
medias <- m %*% rep(1, n) / n
esperanza <- nensayos * p
varianza <- nensayos * p * (1 - p)
muestra[,i] <- (medias - esperanza) / sqrt(varianza / n)
#muestra[, i] <- (medias - esperanza) / sqrt(p * (1 - p))
}
steps <- list()
max_x <- 4
vec <- seq(-max_x, max_x, 0.05)
pvec_Z <- dnorm(vec)
fig <- plot_ly(width=600,height=600) %>%
layout(title = "\n\n Histograma (convertido en densidad de proba.)\n de medias muestrales, caso binomial",
yaxis = list(range=c(0, 0.8)), xaxis = list(range=c(-max_x, max_x))) %>%
add_lines(x=vec, y=pvec_Z, visible=TRUE, mode='lines', line=list(color='blue'), showlegend=TRUE, name="Z")
for (i in 1:length(params)){
data <- muestra[,i]
fig <- add_histogram(fig, data, histnorm = "probability density", visible=ifelse(i==1, TRUE, FALSE), showlegend=TRUE, xbins=list(start=-4,end=4, size=0.5),
name=sprintf("N=%d, M=%.2f, SD=%.2f, asim=%.2f, curt=%.2f", params[i], mean(data), sd(data), skewness(data), kurtosis(data)))
steps[[i]] <- list(args = list('visible', rep(FALSE, length(params)+1)), label=params[i], method='restyle')
steps[[i]]$args[[2]][1] <- TRUE
steps[[i]]$args[[2]][i+1] <- TRUE
}
fig <- fig %>% layout(sliders=list(list(active=0, currentvalue = list(prefix = "N: "), steps=steps)), legend=list(x=0.1, y=0.85))
fig